home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Animation How-To
/
Animation How-to CD.iso
/
PLY
/
CHAPTER4
/
JELLYDIM
/
DMDVIEWS.BAS
< prev
next >
Wrap
BASIC Source File
|
1994-01-01
|
10KB
|
302 lines
' Diamond Data File Creator
' (c) Jeff Bowermaster, 1992
' Splat! Graphics
TYPE vector
x AS SINGLE
y AS SINGLE
z AS SINGLE
END TYPE
DIM vertex(41) AS vector
DIM red(16), green(16), blue(16)
' set the screen up with pretty rainbow colors
SCREEN 12
scale = .02
xoff = 200
yoff = 320
WINDOW ((0 - xoff) * scale, (0 - yoff) * scale)-((639 - xoff) * scale, (479 - yoff) * scale)
FOR y = 1 TO 4
FOR x = 1 TO 4
colornum = x + ((y - 1) * 4) - 1
READ red(colornum), green(colornum), blue(colornum)
KOLOR = 65536 * blue(colornum) + 256 * green(colornum) + red(colornum)
PALETTE colornum, KOLOR
COLOR colornum
NEXT x
NEXT y
'Rainbow Palette
DATA 0, 0, 0
DATA 32, 0, 0
DATA 42, 0, 0
DATA 58, 16, 0
DATA 63, 32, 0
DATA 58, 56, 0
DATA 16, 42, 0
DATA 0, 30, 36
DATA 0, 20, 40
DATA 0, 10, 48
DATA 0, 0, 63
DATA 20, 0, 53
DATA 23, 0, 29
DATA 19, 7, 17
DATA 50, 40, 45
DATA 63, 63, 63
pi = 3.1415926535#
rad = pi / 180
p = .5
l1 = 1
l2 = 2 ^ p
l3 = 3 ^ p
l4 = l2 / 2.5
g = 1
d1 = 0
d2 = -.2 * g
d3 = -.495 * g
d4 = -1.43 * g
d5 = -1.87 * g
FOR f = 1 TO 8
a = 360 * f / 8
vertex(f).x = l1 * COS(rad * a)
vertex(f).y = l1 * SIN(rad * a)
vertex(f).z = d1
vertex(f + 8).x = l2 * COS(rad * (a + 22.5))
vertex(f + 8).y = l2 * SIN(rad * (a + 22.5))
vertex(f + 8).z = d2
vertex(f + 16).x = l3 * COS(rad * (a + 45))
vertex(f + 16).y = l3 * SIN(rad * (a + 45))
vertex(f + 16).z = d3
vertex(f + 24).x = l3 * COS(rad * (a + 67.5))
vertex(f + 24).y = l3 * SIN(rad * (a + 67.5))
vertex(f + 24).z = d3
vertex(f + 32).x = l4 * COS(rad * (a + 67.5))
vertex(f + 32).y = l4 * SIN(rad * (a + 67.5))
vertex(f + 32).z = d4
NEXT f
vertex(41).x = 0
vertex(41).y = 0
vertex(41).z = d5
'Top Left View
FOR a = 1 TO 8
level1a = 1 + a MOD 8
level1b = 1 + (a + 1) MOD 8
level2a = 1 + (a - 1) MOD 8
level2b = 1 + a MOD 8
level3a = 9 + (a - 1) MOD 8
level3b = 9 + a MOD 8
level4a = 16 + a
level4b = 17 + a MOD 8
level4c = 9 + a MOD 8
level5a = 17 + (a - 1) MOD 8
level5b = 25 + (a - 1) MOD 8
level5c = 17 + a MOD 8
level6a = 33 + (a - 1) MOD 8
level6b = 33 + (a) MOD 8
level7 = 41
LINE (vertex(level1a).x, vertex(level1a).y)-(vertex(level1b).x, vertex(level1b).y), a
LINE (vertex(level1a).x, vertex(level1a).y)-(0, 0), 15
LINE (vertex(level1a).x, vertex(level1a).y)-(vertex(a + 16).x, vertex(a + 16).y), 14
LINE (vertex(a + 8).x, vertex(a + 8).y)-(vertex(level2a).x, vertex(level2a).y), a
LINE (vertex(a + 8).x, vertex(a + 8).y)-(vertex(level2b).x, vertex(level2b).y), a
LINE (vertex(a + 16).x, vertex(a + 16).y)-(vertex(level3a).x, vertex(level3a).y), a
LINE (vertex(a + 16).x, vertex(a + 16).y)-(vertex(level3b).x, vertex(level3b).y), a
LINE (vertex(a + 24).x, vertex(a + 24).y)-(vertex(level4a).x, vertex(level4a).y), a
LINE (vertex(a + 24).x, vertex(a + 24).y)-(vertex(level4b).x, vertex(level4b).y), a
LINE (vertex(a + 24).x, vertex(a + 24).y)-(vertex(level4c).x, vertex(level4c).y), a
' LINE (vertex(a + 32).x, vertex(a + 32).y)-(vertex(level5a).x, vertex(level5a).y), a
' LINE (vertex(a + 32).x, vertex(a + 32).y)-(vertex(level5b).x, vertex(level5b).y), a
' LINE (vertex(a + 32).x, vertex(a + 32).y)-(vertex(level5c).x, vertex(level5c).y), a
'
' LINE (vertex(a + 32).x, vertex(a + 32).y)-(vertex(level7).x, vertex(level7).y), a
NEXT a
'Bottom Right View
FOR a = 1 TO 8
xoff = 4
level1a = 1 + a MOD 8
level1b = 1 + (a + 1) MOD 8
level2a = 1 + (a - 1) MOD 8
level2b = 1 + a MOD 8
level3a = 9 + (a - 1) MOD 8
level3b = 9 + a MOD 8
level4a = 16 + a
level4b = 17 + a MOD 8
level4c = 9 + a MOD 8
level5a = 17 + (a - 1) MOD 8
level5b = 25 + (a - 1) MOD 8
level5c = 17 + a MOD 8
level6a = 33 + (a - 1) MOD 8
level6b = 33 + (a) MOD 8
level7 = 41
' LINE (vertex(level1a).x, vertex(level1a).y)-(vertex(level1b).x, vertex(level1b).y), a
' LINE (vertex(level1a).x, vertex(level1a).y)-(0, 0), 15
' LINE (vertex(level1a).x, vertex(level1a).y)-(vertex(a + 16).x, vertex(a + 16).y), 14
' LINE (vertex(a + 8).x, vertex(a + 8).y)-(vertex(level2a).x, vertex(level2a).y), a
' LINE (vertex(a + 8).x, vertex(a + 8).y)-(vertex(level2b).x, vertex(level2b).y), a
' LINE (vertex(a + 16).x, vertex(a + 16).y)-(vertex(level3a).x, vertex(level3a).y), a
' LINE (vertex(a + 16).x, vertex(a + 16).y)-(vertex(level3b).x, vertex(level3b).y), a
LINE (xoff + vertex(a + 24).x, vertex(a + 24).y)-(xoff + vertex(level4a).x, vertex(level4a).y), a
LINE (xoff + vertex(a + 24).x, vertex(a + 24).y)-(xoff + vertex(level4b).x, vertex(level4b).y), a
' LINE (xoff + vertex(a + 24).x, vertex(a + 24).y)-(xoff + vertex(level4c).x, vertex(level4c).y), a
LINE (xoff + vertex(a + 32).x, vertex(a + 32).y)-(xoff + vertex(level5a).x, vertex(level5a).y), a
LINE (xoff + vertex(a + 32).x, vertex(a + 32).y)-(xoff + vertex(level5b).x, vertex(level5b).y), a
LINE (xoff + vertex(a + 32).x, vertex(a + 32).y)-(xoff + vertex(level5c).x, vertex(level5c).y), a
LINE (xoff + vertex(level6a).x, vertex(level6a).y)-(xoff + vertex(level6b).x, vertex(level6b).y), 15
LINE (xoff + vertex(a + 32).x, vertex(a + 32).y)-(xoff + vertex(level7).x, vertex(level7).y), a
NEXT a
'X Side View (left)
FOR a = 1 TO 8
xoff = 0
zoff = -3
level1a = 1 + a MOD 8
level1b = 1 + (a + 1) MOD 8
level2a = 1 + (a - 1) MOD 8
level2b = 1 + a MOD 8
level3a = 9 + (a - 1) MOD 8
level3b = 9 + a MOD 8
level4a = 16 + a
level4b = 17 + a MOD 8
level4c = 9 + a MOD 8
level5a = 17 + (a - 1) MOD 8
level5b = 25 + (a - 1) MOD 8
level5c = 17 + a MOD 8
level6a = 33 + (a - 1) MOD 8
level6b = 33 + (a) MOD 8
level7 = 41
LINE (xoff + vertex(level1a).x, zoff + vertex(level1a).z)-(xoff + vertex(level1b).x, zoff + vertex(level1b).z), a
LINE (xoff + vertex(level1a).x, zoff + vertex(level1a).z)-(xoff + 0, zoff + 0), 15
LINE (xoff + vertex(level1a).x, zoff + vertex(level1a).z)-(xoff + vertex(a + 16).x, zoff + vertex(a + 16).z), 14
LINE (xoff + vertex(a + 8).x, zoff + vertex(a + 8).z)-(xoff + vertex(level2a).x, zoff + vertex(level2a).z), a
LINE (xoff + vertex(a + 8).x, zoff + vertex(a + 8).z)-(xoff + vertex(level2b).x, zoff + vertex(level2b).z), a
LINE (xoff + vertex(a + 16).x, zoff + vertex(a + 16).z)-(xoff + vertex(level3a).x, zoff + vertex(level3a).z), a
LINE (xoff + vertex(a + 16).x, zoff + vertex(a + 16).z)-(xoff + vertex(level3b).x, zoff + vertex(level3b).z), a
LINE (xoff + vertex(a + 24).x, zoff + vertex(a + 24).z)-(xoff + vertex(level4a).x, zoff + vertex(level4a).z), a
LINE (xoff + vertex(a + 24).x, zoff + vertex(a + 24).z)-(xoff + vertex(level4b).x, zoff + vertex(level4b).z), a
LINE (xoff + vertex(a + 24).x, zoff + vertex(a + 24).z)-(xoff + vertex(level4c).x, zoff + vertex(level4c).z), a
LINE (xoff + vertex(a + 32).x, zoff + vertex(a + 32).z)-(xoff + vertex(level5a).x, zoff + vertex(level5a).z), a
LINE (xoff + vertex(a + 32).x, zoff + vertex(a + 32).z)-(xoff + vertex(level5b).x, zoff + vertex(level5b).z), a
LINE (xoff + vertex(a + 32).x, zoff + vertex(a + 32).z)-(xoff + vertex(level5c).x, zoff + vertex(level5c).z), a
LINE (xoff + vertex(level6a).x, zoff + vertex(level6a).z)-(xoff + vertex(level6b).x, zoff + vertex(level6b).z), 15
LINE (xoff + vertex(a + 32).x, zoff + vertex(a + 32).z)-(xoff + vertex(level7).x, zoff + vertex(level7).z), a
NEXT a
'Y side view (right)
FOR a = 1 TO 8
yoff = 4
zoff = -3
level1a = 1 + a MOD 8
level1b = 1 + (a + 1) MOD 8
level2a = 1 + (a - 1) MOD 8
level2b = 1 + a MOD 8
level3a = 9 + (a - 1) MOD 8
level3b = 9 + a MOD 8
level4a = 16 + a
level4b = 17 + a MOD 8
level4c = 9 + a MOD 8
level5a = 17 + (a - 1) MOD 8
level5b = 25 + (a - 1) MOD 8
level5c = 17 + a MOD 8
level6a = 33 + (a - 1) MOD 8
level6b = 33 + (a) MOD 8
level7 = 41
LINE (yoff + vertex(level1a).y, zoff + vertex(level1a).z)-(yoff + vertex(level1b).y, zoff + vertex(level1b).z), a
LINE (yoff + vertex(level1a).y, zoff + vertex(level1a).z)-(yoff + 0, zo